package com.indexingsystem.system.service;

import java.util.List;

import com.indexingsystem.boss.Vo.MenusVo;
import com.indexingsystem.boss.Vo.PavilionColumnsSortVo;
import com.indexingsystem.boss.Vo.ResCategoryOrderQueryVo;
import com.indexingsystem.boss.Vo.TreeQueryVo;
import com.indexingsystem.boss.common.PagedResult;
import com.indexingsystem.boss.entity.PavilionColumns;

public interface IPavilionColumnsService {
	
	/**
	 * 获取栏目名称
	 * @param pavilionColumn
	 * @return
	 */
	PavilionColumns getPavilionColumnName(String pavilionColumn);
	
	/**
	 * 获取栏目表表
	 * @return
	 */
	List<PavilionColumns> getPavilionColumns();
	
	/**
	 * 获取栏目数量
	 * @param treeQueryVo
	 * @return
	 */
	Integer getPavilionColumnsList(TreeQueryVo treeQueryVo);

	/**
	 * 获取栏目列表(模糊查询)
	 * @param treeQueryVo
	 * @return
	 */
	PagedResult<PavilionColumns> selectPavilionColumnsList(TreeQueryVo treeQueryVo);
	
	/**
	 * 获取栏目详情
	 * @param id
	 * @return
	 */
	MenusVo getMenusRelationsInfo(String id);
	
	/**
	 * 修改栏目信息
	 * @param menusVo
	 * @return
	 * @throws Exception
	 */
	int updatePavilionColumns(MenusVo menusVo) throws Exception;
	
	/**
	 * 新增栏目信息
	 * @param menusVo
	 * @return
	 * @throws Exception
	 */
	int insertPavilionColumns(MenusVo menusVo) throws Exception;
	
	/**
	 * 删除信息
	 * @param list
	 * @return
	 */
	int deletePavilions(List<String> list) throws Exception;
	
	/**
	 * 获取父级最大排序值
	 * @param id
	 * @return
	 */
	String getParentMenuSortMax(String id);
	
	
	/**
	 * 获取父级最小排序值.
	 * @param id
	 * @return
	 */
	String getParentMenuSortMin(String id);
	
	/**
	 * 通过Id获取信息
	 * @param id
	 * @return
	 */
	PavilionColumns selectByPrimaryKey(String id);
	
	
    /**
     * 栏目菜单排序获取自身或目录排序栏目菜单列表.
     * 
     * @param resCategoryOrderQueryVo
     * @return
     */ 
    List<PavilionColumns> getPavilionColumnsByColumnOrder(ResCategoryOrderQueryVo resCategoryOrderQueryVo);
    
    
    /**
     * 批量修改菜单栏目上移、下移操作.
     * @param list
     * @return
     * @throws Exception
     */
    int updateBatchPavilionColumns(List<PavilionColumns> list) throws Exception;
    
    
    /**
     * 通过资源分类id批量删除栏目资源分类关系表.
     * @param list
     * @return
     */
    int deleteMenusRelationsByResCategoryIds(List<String> resCategoryIdList);
   
}